맨위로가기

온라인 트랜잭션 처리

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

온라인 트랜잭션 처리(OLTP)는 컴퓨터 및 데이터베이스 분야에서 상태의 원자적 변화를 나타내는 트랜잭션과, 비즈니스 및 금융 분야에서 경제적 실체의 교환을 의미하는 트랜잭션을 처리하는 방식을 일컫는다. OLTP는 온라인 분석 처리(OLAP)와 대조되며, 은행의 현금 자동 입출금기(ATM), 인터넷 뱅킹, 전자 상거래 등과 같은 분야에서 활용된다. OLTP 시스템은 클라이언트-서버 모델을 사용하며, 트랜잭션 관리 소프트웨어와 데이터베이스 최적화에 의해 효율성이 결정된다. OLTP는 단순성과 효율성을 제공하지만, 보안 취약점과 기업 간 거래에서 시간과 비용 낭비를 초래할 수 있다. OLTP 시스템 설계 시에는 다수의 동시 사용자 처리, 인덱스 및 클러스터 사용 제한, 롤백 세그먼트, 블록 크기, 버퍼 캐시 크기, 파티션, 데이터베이스 튜닝 등을 고려해야 한다.

더 읽어볼만한 페이지

  • 트랜잭션 처리 - 2단계 커밋 프로토콜
    2단계 커밋 프로토콜은 분산 컴퓨팅 환경에서 트랜잭션의 원자성을 보장하는 분산 알고리즘으로, 조정자와 참가자로 구성되어 모든 참가자가 트랜잭션을 완료하거나 아무도 완료하지 못하도록 하며, 커밋 요청 및 커밋 단계를 거쳐 모든 참가자의 동의를 얻어야 커밋된다.
  • 트랜잭션 처리 - CICS
    CICS는 IBM에서 개발한 온라인 트랜잭션 처리 시스템으로, 다양한 산업 분야에서 대규모 트랜잭션 처리를 위해 사용되며, COBOL, PL/I, C, Java 등 다양한 프로그래밍 언어를 지원한다.
  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 - 지식 베이스
    지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다.
  • 데이터베이스 - 화이트리스트
    화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다.
온라인 트랜잭션 처리
개요
유형데이터베이스 시스템
특징대량의 트랜잭션 처리
빠른 응답 시간
높은 데이터 무결성
병행성 제어
ACID 속성 (원자성, 일관성, 격리성, 지속성) 보장
기술적 측면
주요 기술데이터베이스 관리 시스템 (DBMS)
트랜잭션 관리자
잠금 메커니즘
복구 메커니즘
활용 분야
응용 분야은행: 계좌 이체, 잔액 조회 등
소매업: 판매 시점 관리 (POS) 시스템, 재고 관리 시스템
항공: 예약 시스템
제조업: 생산 관리 시스템
주식: 거래 시스템
예시
예시온라인 뱅킹
전자 상거래
신용 카드 결제
재고 관리
예약 시스템
고려 사항
설계 시 고려 사항확장성: 트랜잭션 양 증가에 대한 대비
보안: 데이터 보호 및 권한 관리
성능: 빠른 응답 시간 유지
가용성: 시스템 장애에 대한 대비 (이중화, 백업 등)
관련 기술
관련 기술분산 데이터베이스
클라우드 컴퓨팅
NoSQL 데이터베이스 (특정 유형의 OLTP에 적합)
장점 및 단점
장점실시간 데이터 처리
높은 데이터 무결성
안정적인 시스템 운영
단점복잡한 시스템 구조
높은 초기 구축 비용
유지 보수 및 관리의 어려움

2. 용어의 의미

"트랜잭션"이라는 용어는 두 가지 다른 의미를 가질 수 있으며, 둘 다 적용될 수 있다. 컴퓨터 또는 데이터베이스 트랜잭션 분야에서 트랜잭션은 상태의 원자적 변화를 나타내는 반면, 비즈니스 또는 금융 분야에서는 일반적으로 경제적 실체의 교환을 나타낸다(예: 트랜잭션 처리 성능 위원회 또는 상업적 거래에서 사용).[1] OLTP는 두 번째 유형의 트랜잭션을 기록하기 위해 첫 번째 유형의 트랜잭션을 사용할 수 있다.

3. OLAP와의 비교

온라인 분석 처리(OLAP)는 일반적으로 트랜잭션을 처리하기보다는 비즈니스 인텔리전스나 보고를 목적으로 더 적은 양의 데이터에 대해 훨씬 더 복잡한 쿼리를 수행하는 반면, 온라인 트랜잭션 처리(OLTP)는 모든 종류의 쿼리(읽기, 삽입, 업데이트 및 삭제)를 처리한다. OLAP는 일반적으로 읽기 전용으로 최적화되어 있으며 다른 종류의 쿼리를 지원하지 않을 수도 있다.[1] OLTP는 일괄 처리그리드 컴퓨팅과도 다르게 작동한다.[1]

또한, OLTP는 분산된 이벤트 로그를 기반으로 대규모 이기종 시스템에서 강력한 일관성을 제공하는 온라인 이벤트 처리(OLEP)와도 자주 대조된다.[2] OLTP가 짧은 원자적 트랜잭션과 연관되는 반면, OLEP는 보다 유연한 분산 패턴과 더 높은 확장성을 허용하지만, 지연 시간이 증가하고 처리 시간에 대한 상한이 보장되지 않는다.

4. 활용 분야

OLTP는 시스템이 사용자 요청에 즉시 응답하는 처리 방식을 지칭하는 데에도 사용된다. 은행의 현금 자동 입출금기(ATM)는 상업적 거래 처리 애플리케이션의 한 예이다.[3] 온라인 트랜잭션 처리 애플리케이션은 높은 처리량을 가지며 데이터베이스 관리에서 삽입 또는 업데이트 집약적이다. 이러한 애플리케이션은 수백 명의 사용자가 동시에 사용한다. OLTP 애플리케이션의 주요 목표는 가용성, 속도, 동시성 및 복구 가능성(내구성)이다.[4] 서류 작업 감소와 더 빠르고 정확한 매출 및 비용 예측은 OLTP가 비즈니스를 단순화하는 방식의 예이다. 그러나 많은 현대 온라인 정보 기술 솔루션과 마찬가지로 일부 시스템은 오프라인 유지 관리가 필요하며, 이는 온라인 트랜잭션 처리 시스템의 비용 편익 분석에 영향을 미친다.

은행, 항공사, 통신 판매, 슈퍼마켓, 제조업 등 다양한 산업에서 이용되고 있다. OLTP의 실례로 인터넷 뱅킹, 주문 처리, 타임 레코더 시스템, 전자 상거래, 전자 주식 거래 등이 있다.

5. 요구 사양

오늘날 기업에서는 온라인 트랜잭션 처리(OLTP) 시스템을 데이터 처리 시스템으로 활용하고 있다. 주문 입력, 소매 판매, 금융 거래 시스템 등이 OLTP 시스템의 예시이다.[5] OLTP 시스템은 네트워크를 통해 여러 회사를 포함하는 트랜잭션을 지원해야 하는 경우가 많아지고 있다. 따라서 최신 OLTP 소프트웨어는 클라이언트/서버 처리 및 브로커링 소프트웨어를 사용하여 네트워크의 여러 컴퓨터 플랫폼에서 트랜잭션을 실행할 수 있도록 한다.

대규모 애플리케이션에서 효율적인 OLTP는 정교한 트랜잭션 관리 소프트웨어(예: IBM CICS) 및/또는 OLTP 중심 데이터베이스에 대한 대규모 동시 업데이트 처리를 위한 데이터베이스 최적화 전략에 의존할 수 있다.

분산 데이터베이스 시스템의 경우, OLTP 브로커링 프로그램은 네트워크의 여러 컴퓨터 간에 트랜잭션 처리를 분산할 수 있다. OLTP는 서비스 지향 아키텍처 (SOA) 및 웹 서비스에 통합되기도 한다.

OLTP는 정보 수집, 데이터 처리, 기존 데이터 업데이트를 포함하며, 수집 및 처리된 정보를 반영한다. 대부분의 조직은 OLTP 지원을 위해 데이터베이스 관리 시스템을 사용하며, 클라이언트-서버 시스템에서 수행된다.

OLTP에는 동시성 및 원자성 보장이 필요하다. 동시성 제어는 데이터베이스 시스템에서 동일한 데이터에 접근하는 두 사용자가 동시에 데이터를 변경할 수 없도록 보장하며, 다른 사용자가 처리를 완료할 때까지 대기하도록 한다. 원자성 제어는 트랜잭션의 모든 단계가 하나의 그룹으로 성공적으로 완료되도록 보장한다. 즉, 트랜잭션 중 한 단계라도 실패하면 다른 모든 단계도 실패해야 한다.[6]

6. 장점

온라인 트랜잭션 처리(OLTP)에는 단순성과 효율성이라는 두 가지 장점이 있다.

OLTP가 비즈니스를 단순화하는 예로는 문서 기록 감소, 빠르고 정확한 수익 및 비용 예측 등이 있다. 또한, 시의적절한 업데이트를 통해 기업의 기반이 강화된다. 아울러 소비자에게 결제 방식의 선택 폭을 넓혀 더 많은 트랜잭션을 발생시키는 것도 단순성이 작용한 결과이다.

더불어 OLTP는 24시간 쉬지 않고 서비스를 제공할 수 있으며, 개별 트랜잭션의 속도가 빠르다. 이러한 효율성은 기업의 고객 기반 확대로 이어진다.

7. 단점

OLTP는 기업에게 유용한 도구이지만, 몇 가지 단점이 존재한다.
보안 문제가용성이 높은 OLTP 시스템은 동시에 데이터베이스 침입에 취약할 수 있다.[1] 이는 OLTP의 장점이 잠재적인 문제점으로 작용하는 예시이다.
경비 문제B2B 트랜잭션에서는 최종적으로 양측이 오프라인으로 절차를 진행해야 할 필요가 있다.[1] 시스템의 사소한 문제도 시간과 비용 낭비를 초래할 수 있다.[1] 또한, 서버 장애는 지연을 발생시키거나 최악의 경우 데이터 손실을 유발하여 추가적인 비용을 발생시킬 수 있다.[1]

8. 시스템 설계

오늘날 기업에서는 온라인 트랜잭션 처리(OLTP) 시스템을 활용하여 데이터를 처리한다. 주문 입력, 소매 판매, 금융 거래 시스템 등이 OLTP 시스템의 예시이다.[5] 최근에는 네트워크를 통해 여러 회사를 포함하는 트랜잭션을 지원해야 하는 경우가 많아지고 있다. 따라서 최신 OLTP 소프트웨어는 네트워크의 여러 컴퓨터 플랫폼에서 트랜잭션을 실행할 수 있도록 클라이언트/서버 처리 및 브로커링 소프트웨어를 사용한다.

대규모 애플리케이션에서 효율적인 OLTP를 구현하려면 정교한 트랜잭션 관리 소프트웨어(예: IBM CICS)를 사용하거나, OLTP 중심 데이터베이스에 대한 대규모 동시 업데이트 처리를 용이하게 하기 위해 데이터베이스 최적화 전략을 활용해야 한다.

더욱 까다로운 분산 데이터베이스 시스템의 경우, OLTP 브로커링 프로그램은 네트워크의 여러 컴퓨터 간에 트랜잭션 처리를 분산시킬 수 있다. OLTP는 서비스 지향 아키텍처(SOA) 및 웹 서비스에 통합되기도 한다.

OLTP 시스템을 구축할 때는 다수의 동시 사용자가 시스템 성능을 저하시키지 않도록 설계해야 한다. 성능 향상을 위해 과도한 인덱스 및 클러스터 사용을 피해야 한다.

OLTP 시스템의 성능에 중요한 요소는 다음과 같다.[4]


  • 롤백 세그먼트: 트랜잭션이 롤백될 경우 트랜잭션의 작업을 기록하는 데이터베이스의 일부이다. 읽기 일관성, 롤백 트랜잭션 및 데이터베이스 복구를 제공한다.[7]
  • 클러스터: 하나 이상의 공통 열을 가진 하나 이상의 테이블을 포함하는 스키마이다. 테이블을 클러스터링하면 조인 작업의 성능이 향상된다.[8]
  • 개별 트랜잭션: 트랜잭션이 커밋될 때까지 데이터에 대한 모든 변경을 연기한다. 짧고 분산되지 않은 트랜잭션의 성능을 향상시킬 수 있다.[9]
  • 블록 크기: 데이터 블록 크기는 불필요한 I/O를 방지하기 위해 운영 체제의 블록 크기의 배수여야 하며 최대 제한 내에 있어야 한다.[10]
  • 버퍼 캐시 크기: SQL 문은 불필요한 리소스 소비를 피하기 위해 데이터베이스 버퍼 캐시를 사용하도록 조정해야 한다.[11]
  • 테이블 및 롤백 세그먼트에 대한 공간의 동적 할당
  • 트랜잭션 처리 모니터 및 다중 스레드 서버: 트랜잭션 처리 모니터는 서비스 조정을 위해 사용된다. 운영 체제와 유사하며 높은 수준의 세분성으로 조정을 수행하며 여러 컴퓨팅 장치에 걸쳐 있을 수 있다.[12]
  • 파티션 (데이터베이스): 파티션 사용은 가용성 및 보안을 유지하면서 정기적인 트랜잭션이 있는 사이트의 성능을 향상시킨다.
  • 데이터베이스 튜닝: 데이터베이스 튜닝을 통해 OLTP 시스템은 최대한 효율적이고 빠르게 성능을 극대화할 수 있다.

참조

[1] 서적 Benchmarking Transaction and Analytical Processing Systems: The Creation of a Mixed Workload Benchmark and its Application https://books.google[...] Springer Science & Business Media 2013
[2] 웹사이트 Online Event Processing - ACM Queue https://queue.acm.or[...] 2019-05-30
[3] 웹사이트 What is OLTP? The backbone of ecommerce https://www.infoworl[...] 2022-09-27
[4] 웹사이트 Application and System Performance Characteristics http://docs.oracle.c[...] 2018-05-02
[5] 웹사이트 Database VLDB and Partitioning Guide http://docs.oracle.c[...] 2018-05-02
[6] 웹사이트 Online Transaction Processing vs. Decision Support https://technet.micr[...] 2018-05-07
[7] 웹사이트 Managing Rollback Segments http://docs.oracle.c[...] 2018-05-07
[8] 웹사이트 ISelfSchooling - What is cluster table - Index Cluster and Hash Cluster http://www.iselfscho[...] 2014-05-14
[9] 웹사이트 Transaction Modes http://docs.oracle.c[...] 2018-05-07
[10] 웹사이트 Data Blocks, Extents, and Segments http://docs.oracle.c[...] 2018-05-07
[11] 웹사이트 Tuning the Database Buffer Cache https://docs.oracle.[...] 2018-05-07
[12] 웹사이트 Transaction processing monitor http://c2.com/cgi/wi[...] 2018-05-07
[13] 웹사이트 Transaction Processing Performance Council website http://www.tpc.org/



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com